package mobile.dominio;

import waba.io.DataStream;
import waba.ui.*;
import mobile.dominio.LineaVenta;
import mobile.persistencia.PCliente;
import mobile.persistencia.PLineaVenta;
import mobile.persistencia.PZona;
import moio.util.*;
import waba.util.*;
import superwaba.ext.xplat.util.datergf.DateTime;
import superwaba.ext.xplat.util.datergf.Time;

public class Venta {
	private long id;
	private Date fecha;
	private DateTime fechahoraventa;
	private Cliente cliente;
	private int ordencliente;
	private float entrega;
	private float total;
	private ArrayList colLineas = new ArrayList();
	
	public Venta() {
		
	}

	public Venta(DataStream ds){      
		/* info */
		this.id = ds.readLong();
		this.fecha = new Date(ds.readString());
		Date unaFecha = new Date(ds.readString());
		this.fechahoraventa = new DateTime();
		this.fechahoraventa.date.set(unaFecha.getYear(), unaFecha.getMonth(), unaFecha.getDay());
		this.fechahoraventa.time = Time.valueOf(ds.readFloat());
		this.cliente = PCliente.instance.buscarClienteXOrden(ds.readInt());
		this.entrega = ds.readFloat();
		this.total = ds.readFloat();
	}
	
	public void saveTo(DataStream ds){
		ds.writeLong(this.id);
		ds.writeString(this.fecha.toString());
		this.fechahoraventa =  new DateTime();
		this.fechahoraventa.date.update();
		this.fechahoraventa.time.update();
		ds.writeString(this.fechahoraventa.date.toString());
		ds.writeFloat(this.fechahoraventa.time.toFloat());
		//ds.writeInt(this.cliente.getId());
		ds.writeInt(this.cliente.getOrden());
		ds.writeFloat(this.entrega);
		ds.writeFloat(this.total);
		
		Iterator it = colLineas.iterator();
		int i = 0;
		while(it.hasNext()){
			LineaVenta unaLinea = (LineaVenta)it.next();
			unaLinea.setIdVenta(this.id);
			PLineaVenta.instance.write(unaLinea, false);
		}
		
		PLineaVenta.instance.close();
		PLineaVenta.instance = new PLineaVenta();
	}
	
	public Cliente getCliente() {
		return cliente;
	}
	
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	
	public float getEntrega() {
		return entrega;
	}
	
	public void setEntrega(float entrega) {
		this.entrega = entrega;
	}
	
	public Date getFecha() {
		return fecha;
	}
	
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	
	public DateTime getFechahoraventa() {
		return fechahoraventa;
	}
	
	public void setFechahoraventa(DateTime fechahoraventa) {
		this.fechahoraventa = fechahoraventa;
	}
	
	public long getId() {
		return id;
	}
	
	public void setId(long id) {
		this.id = id;
	}
	
	public float getTotal() {
		/*float total = 0;
		Iterator it = this.colLineas.iterator();
		while(it.hasNext()){
			LineaVenta unaLinea = (LineaVenta)it.next();
			total += unaLinea.getTotlin();
		}
		return total;*/
		return this.total;
	}
	
	public ArrayList getColLineas() {
		return colLineas;
	}

	public void setColLineas(ArrayList colLineas) {
		this.colLineas = colLineas;
	}

	public void setTotal(float total) {
		this.total = total;
	}
	
}
